package com.dc.system.mapper;

import com.dc.system.model.SysOrgan;
import com.dc.system.model.SysOrgan;

import java.util.List;
import java.util.Map;

/**
 * @Description: SysOrganMapper
 * @Author: ChenXueLi
 * @Date: 2018-05-05 8:58
 */
public interface SysOrganMapper {

    /**
     * 添加一个单位
     * @param sysOrgan
     * @return
     */
    int addSysOrgan(SysOrgan sysOrgan);

    /**
     * 根据单位id删除一个单位
     * @param sysOrgan
     * @return
     */
    int deleteSysOrganById(SysOrgan sysOrgan);

    /**
     * 根据单位id修改一个单位的信息
     * @param sysOrgan
     * @return
     */
    int updateSysOrganById(SysOrgan sysOrgan);

    /**
     * 根据id查询单个单位
     * @param organId
     * @return
     */
    SysOrgan getSysOrganById(int organId);

    /**
     * 查询出当前单位数据的总数（没有被标记删除的）
     * @return
     */
    int getSysOrgansCount();

    /**
     * 直接修改排序号之后的单位数据（递增）
     * @param sysOrgan
     * @return
     */
    int updateSysOrganOrderCodeIncreaseByOrderCode(SysOrgan sysOrgan);

    /**
     * 直接修改排序号之后的单位数据（递减）
     * @param sysOrgan
     * @return
     */
    int updateSysOrganOrderCodeDecreaseByOrderCode(SysOrgan sysOrgan);

    /**
     * 查询出排序在指定单位之后的数据
     * @param orderCode
     * @return
     */
    List<SysOrgan> getSysOrgansByAfterOrderCode(int orderCode);

    /**
     * 根据id修改单位的排序序号
     * @param sysOrgan
     * @return
     */
    int updateSysOrganOrderCodeById(SysOrgan sysOrgan);

    /**
     * 分页查询所有单位
     * @param map
     * @return
     */
    List<SysOrgan> getSysOrgans(Map map);

    /**
     * 查询出当前用户所对应的单位
     * @param map
     * @return
     */
    List<SysOrgan> getSysOrganByUserId(Map map);

    /**
     * 查询出所有有此部门的单位
     * @param deptId
     * @return
     */
    List<SysOrgan> getSysOrganByDept(int deptId);
    
}
